package com.hyg.lib_music.presenter.di.components;

import android.app.Application;
import android.content.Context;

import com.hyg.lib_common.Base.BaseApplication;
import com.hyg.lib_music.presenter.CloseableRxServiceExecutor;
import com.hyg.lib_music.presenter.MainMusicBedContract;
import com.hyg.lib_music.presenter.MainMusicBedPresenter;
import com.hyg.lib_music.presenter.MusicCateListContract;
import com.hyg.lib_music.presenter.MusicCateListPresenter;
import com.hyg.lib_music.presenter.MusicCategoryListContract;
import com.hyg.lib_music.presenter.MusicCategoryListPresenter;
import com.hyg.lib_music.presenter.MusicDocListContract;
import com.hyg.lib_music.presenter.MusicDocListPresenter;
import com.hyg.lib_music.presenter.MusicFavListContract;
import com.hyg.lib_music.presenter.MusicFavListPresenter;
import com.hyg.lib_music.presenter.MusicListContract;
import com.hyg.lib_music.presenter.MusicListPresenter;
import com.hyg.lib_music.presenter.MusicRecommendContract;
import com.hyg.lib_music.presenter.MusicRecommendPresenter;
import com.hyg.lib_music.presenter.di.modules.ApplicationModule;

import javax.inject.Singleton;

import dagger.Component;


/**
 * Created by zz on 2018/12/10.
 */

@Singleton
@Component(modules = {ApplicationModule.class})
public interface ApplicationComponent {

    void inject(BaseApplication application);

    Application application();

    Context context();

    CloseableRxServiceExecutor closeableRxServiceExecutor();

    MainMusicBedPresenter mainMusicBedPresenter();

    MainMusicBedContract.Presenter mainMusicBedContractPresenter();

    MusicRecommendPresenter musicRecommendPresenter();

    MusicRecommendContract.Presenter musicRecommendContractPresenter();

    MusicListPresenter musicListPresenter();

    MusicListContract.Presenter musicListContractPresenter();

    MusicCategoryListPresenter musicCategoryListPresenter();

    MusicCategoryListContract.Presenter musicCategoryListContractPresenter();

    MusicCateListPresenter musicCateListPresenter();

    MusicCateListContract.Presenter musicCateListContractPresenter();

    MusicFavListPresenter musicFavListPresenter();

    MusicFavListContract.Presenter musicFavListContractPresenter();

    MusicDocListPresenter musicDocListPresenter();

    MusicDocListContract.Presenter musicDocListContractPresenter();

}
